/**
 * 手写call 函数
 * 不得使用 apply、bind 辅助
 */

Function.prototype.myCall = function(ctx,...args){
    ctx =(ctx === null || ctx === undefined) ? globalThis : Object(ctx)
    var key = Symbol('temp');
    Object.defineProperty(ctx,key,{
        enumerable: false, // 不可遍历
        value:this,
    });
    var result = ctx[key](...args)
    return result;
}


function method(a,b){
    console.log(this,a,b)
    return a + b;
}

method.call(undefined,2,3)
method.myCall(undefined,2,3)